package com.lj.common_web.annotation;

import com.lj.common_web.request.RequestBodyDecipher;

import java.lang.annotation.*;

/**
 * @author luojing
 * @version 1.0
 * @date 2021/9/4 20:49
 * 在Controller或Controller的方法上添加该注解
 * 请求的参数必须要被 @RequestBody 修饰才会有效
 * 该注解主要是为了解密请求体中的数据然后让程序正常解析参数
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestBodyDecrypt {

    /**
     * @return 是否生效
     */
    boolean value() default true;

    /**
     * @return 解密器
     */
    Class<? extends RequestBodyDecipher> decipher();

    /**
     * @return 扩展数据 (通常携带解密需要的key等数据)
     */
    String[] exts() default {};

}